package com.woniu.woniu_bx.pojo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;


import java.math.BigDecimal;

/**
 * @ClassName Order
 * @Description 订单
 * @Author 魏才林
 * @Date 2022/8/27 15:24
 * @Version 1.0
 **/

@TableName("bx_order")
@Data
@JsonIgnoreProperties(value = {"handler","hibernateLazyInitializer","fieldHandler"})
public class Order {

    private Integer id;
    /**
     * 下订单时间
     */
    private String buyTime;
    /**
     * 陪玩确认服务已完成的时间
     */
    private String servedTime;
    /**
     * 下订单的用户
     */
    @TableField(value = "user_id", property = "user.id")
    private User user;

    /**
     * 订单中的商品（此项目中一个订单只有一个商品）
     */
    private Integer goodsId;





    /**
     * 订单编号
     */
    private String orderNum;

    /**
     * 订单中的商品数量
     */
    private Integer num;

    /**
     * 订单中的商品价格
     */
    private BigDecimal money;


    /**
     * 此订单中陪玩的具体操作：
     * 'y'：接受订单
     * 'n'：拒绝订单
     * 'o'：处理超时
     * 'w'：等待处理
     */
    private String pwOption;

    /**
     * 订单的状态：
     * '1'：待确认（用户下订单后，等待陪玩方处理）
     * '2'：进行中（陪玩方已经接受，正在服务中）
     * '3'：已服务（陪玩方完成服务，等待买方用户确定已服务）
     * '4'：已取消（陪玩方超时处理或拒绝、买方用户取消订单）
     * '5'：已完成（买方用户确定已服务）
     * 'n'：已删除（买方删除订单）
     */
    private String state;

    /**
     * 最小的购买数量
     */
    @TableField(exist = false)
    private Integer minNum;

    /**
     * 最大的购买数量
     */
    @TableField(exist = false)
    private Integer maxNum;

    /**
     * 订单的开始时间
     */
    @TableField(exist = false)
    private String startTime;

    /**
     * 订单的截至时间
     */
    @TableField(exist = false)
    private String endTime;

    /**
     * 订单的最小金额
     */
    @TableField(exist = false)
    private BigDecimal minMoney;

    /**
     * 订单的最大金额
     */
    @TableField(exist = false)
    private BigDecimal maxMoney;


    /**
     * 每一个类别下面的商品数量
     */
    @TableField(exist = false)
    private Integer orderNumber;
    /**
     * 订单中的商品种类图片（此项目中一个订单只有一个商品）
     */
    @TableField(exist = false)
    private String categoryImg;

    /**
     * 订单中的商品对应的陪玩的头像
     */
    @TableField(exist = false)
    private String pwAvr;

    /**
     * 订单中的商品对应的陪玩的昵称
     */
    @TableField(exist = false)
    private String pwNick;

    /**
     * 订单中的商品对应的描述
     */
    @TableField(exist = false)
    private String goodsDescription;

    /**
     * 每个订单属于的类别
     */
    @TableField(exist = false)
    private Integer categoryId;

    /**
     * 每个订单属于的类别名称
     */
    @TableField(exist = false)
    private String categoryName;

}
